#ifndef AES_API_H
#define AES_API_H

#include<stdint.h>

/**
 * @brief AES128-ECB加密接口，输入key应为16字节长度，输入长度应该是16字节整倍数
 * 
 * @param key    输入的密钥
 * @param keyLen 密钥长度
 * @param pt     输入的明文
 * @param ct     输出的密文
 * @param len    明文长度
 * @return 0     加密成功 
 * @return -1    加密失败 
 * @note  输出长度与输入长度相同，函数调用外部为输出数据分配内存
 */
int aesEncrypt(const uint8_t *key, uint32_t keyLen, const uint8_t *pt, uint8_t *ct, uint32_t len);

/**
 * @brief AES128-ECB解密， 参数要求同加密
 * 
 * @param key    输入的密钥
 * @param keyLen 密钥长度
 * @param ct     输入的密文
 * @param pt     输出的明文
 * @param len    明文长度
 * @return 0     解密成功 
 * @return -1    解密失败 
 */
int aesDecrypt(const uint8_t *key, uint32_t keyLen, const uint8_t *ct, uint8_t *pt, uint32_t len);


#endif
/** EOF */
